package com.zbkj.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.zbkj.common.model.merchant.MerchantCategory;
import com.zbkj.common.request.merchant.MerchantCategoryBrandRequest;
import com.zbkj.common.request.merchant.MerchantCategoryRequest;
import com.zbkj.common.request.PageParamRequest;
import com.zbkj.common.response.MerchantCategoryListResponse;
import com.zbkj.common.response.MerchantCategoryPageListResponse;

import java.util.List;
import java.util.Map;

/**
 * MerchantCategoryService 接口
 +----------------------------------------------------------------------
 */
public interface MerchantCategoryService extends IService<MerchantCategory> {

    /**
     * 获取商户分类分页列表
     * @param pageParamRequest 分页参数
     * @return PageInfo
     */
    PageInfo<MerchantCategory> getAdminPage(PageParamRequest pageParamRequest);
    PageInfo<MerchantCategoryPageListResponse> getAdminPageBrand(PageParamRequest pageParamRequest);

    /**
     * 添加商户分类
     * @param request 请求参数
     * @return Boolean
     */
    Boolean add(MerchantCategoryRequest request);

    Boolean addBrand(MerchantCategoryBrandRequest request);

    /**
     * 编辑商户分类
     * @param request 请求参数
     * @return Boolean
     */
    Boolean edit(MerchantCategoryRequest request);

    /**
     * 删除商户分类
     * @param id 商户分类ID
     * @return Boolean
     */
    Boolean delete(Integer id);

    /**
     * 全部商户分类列表
     * @return List
     */
    List<MerchantCategory> allList();
    List<MerchantCategory> allListBrand();

    /**
     * 全部商户分类Map
     * @return Map
     */
    Map<Integer, MerchantCategory> allMap();
    Map<Integer, MerchantCategory> allMapBrand();

    MerchantCategory getByIdException(Integer categoryId);

    /**
     * 检查数据或复制平台数据
     */
    void checkOrCopy();

    List<MerchantCategoryListResponse> getPlatformList();

    List<MerchantCategory> getListByIds(List<Integer> ids);
}
